Non-volatile semiconductor memory devices are useful in many areas, such as consumer, defense, medical and life science instrumentation that needs fast response and low-power operations. For example, non-volatile semiconductor memory devices can be used in cell-phones, hand-held computers, game devices, control panels, and automotive controls. An example of a non-volatile semiconductor memory device is a flash memory device. In a flash memory device, each memory cell has a control gate and a floating gate, which is insulated all around by an oxide layer. The floating gate is interposed between the control gate and a channel. The floating gate is electrically isolated by its insulating layer and can trap electrons placed on it. The trapped electrons affect the threshold voltage of the device. During read-out, a voltage is applied to the control gate, and the channel will become conducting or remain insulating, depending on the threshold voltage of the cell, which is in turn controlled by the charge on the floating gate. The current flowing through the channel is sensed and forms a binary code, reproducing the stored data.